package modelo;

import geometria.Coordenada;

import geometria.Segmento;

/**
 * 
 * Una pista que permite aterrizajes en una unica direccion
 * 
 */
public abstract class PistaDeEntradaUnica extends Pista {

	Segmento cabecera;

	@Override
	public boolean esAproximacionValida(Coordenada origen, Coordenada destino) {
		Segmento trayectoria = new Segmento(origen, destino);
		return (trayectoria.intersecaCon(this.cabecera) && this.limites
				.contiene(destino));

	}

	@Override
	protected void generarLimites(Coordenada pos, Double rotacion) {
		Coordenada c1, c2;
		super.generarLimites(pos, rotacion);
		c1 = new Coordenada(pos.getX() - ancho / 2, pos.getY() - largo / 2);
		c2 = new Coordenada(pos.getX() + this.ancho / 2, pos.getY() - largo / 2);
		this.cabecera = new Segmento(c1, c2);
		this.cabecera = this.cabecera.getLineaGirada(rotacion,
				this.limites.getCoordenadaCentral());

		return;

	}

	@Override
	public Segmento getCabecera() {
		return this.cabecera;
	}

}
